<script setup lang="ts">
import { computed } from "vue";
import type { ComputedRef } from "vue";

interface NavBarProps {
   top: number,
}

const props = withDefaults(defineProps<NavBarProps>(), {
   top: 0,
});

const paddingTop: ComputedRef<string> = computed<string>(() => props.top + "px");

const goToSearch = () => {
   uni.navigateTo({
      url: "/subPackages/searchHistory/searchHistory",
   });
};
</script>

<template>
   <view class="navbar" :style="{ paddingTop }">
      <!-- logo文字 -->
      <view class="logo">
         <image class="logo-image" src="@/static/images/logo.png"></image>
         <text class="logo-text">新鲜 · 亲民 · 快捷</text>
      </view>
      <!-- 搜索条 -->
      <view class="search" @tap="goToSearch">
         <text class="icon-search">请搜索需要的商品</text>
         <!-- #ifndef H5 -->
         <text class="icon-scan"></text>
         <!-- #endif -->
      </view>
   </view>
</template>

<style scoped lang="scss">
.navbar {
   background-image: url(@/static/images/navigator_bg.png);
   background-size: cover;
   position: sticky;
   top: 0;
   z-index: 1;
   display: flex;
   flex-direction: column;
   padding-top: 20px;

   .logo {
      display: flex;
      align-items: center;
      height: 64rpx;
      padding-left: 30rpx;
      padding-top: 20rpx;

      .logo-image {
         width: 166rpx;
         height: 39rpx;
      }

      .logo-text {
         flex: 1;
         line-height: 28rpx;
         color: #fff;
         margin: 2rpx 0 0 20rpx;
         padding-left: 20rpx;
         border-left: 1rpx solid #fff;
         font-size: 26rpx;
      }
   }

   .search {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 10rpx 0 26rpx;
      height: 64rpx;
      margin: 16rpx 20rpx;
      color: #fff;
      font-size: 28rpx;
      border-radius: 32rpx;
      background-color: rgba(255, 255, 255, 0.5);

      .icon-search {
         &::before {
            margin-right: 10rpx;
         }
      }

      .icon-scan {
         font-size: 30rpx;
         padding: 15rpx;
      }
   }
}
</style>